#! /usr/bin/env python
# -*- coding:utf-8 -*-
# @Time : 2020/3/7 14:41
# @Author : youngchaolin
# @File : 01 作业回顾.py

# 1 将列表中的每个元素方法，使用下划线拼接起来
star=['messi','ronald','herry',22,44,True]

# 使用索引+range可以实现，其中的一种方法
buf=''
for index in range(len(star)):
    # print(index)
    if index==0:
        # str()转换成字符串
        buf=buf+str(star[index])
    else:
        buf=buf+'_'+str(star[index])
print(buf)

# 2 将元祖t1=('clyang','kaka')中的所有元素追加到列表l=['messi','ronald','herry']中
t1=('clyang','kaka')
l=['messi','ronald','herry']
# 方法1
# for i in t1:
#     l.append(i)
# print(l)

# 方法2
l.extend(t1)
print(l)

# 3 将列表l1中偶数位索引的值，添加到列表l2中。
l1=[1,2,3,4,5,6,7,8]
l2=['messi','ronald']
print(l1[::2])
l2.extend(l1[::2])
print(l2)

# 4 将字典中的keys追加到列表l1中，将values追加到l2中
l1=[]
l2=[]
dic=dict((('k1','v1'),('k2','v2'),('k3','v3'),('k4','v4')))
print(dic)

# 使用dic.keys dic.values
l1.extend(dic.keys())
print(l1)
l2.extend(dic.values())
print(l2)

# 5 有字符串"k1: 1|k2:2|k3:3 |k4:4 " 处理成字典{'k1':1,'k2':2,...}
s="k1: 1|k2:2|k3:3 |k4:4 "
l=s.split("|")
# print(l)
dic={}
for item in l:
    # kv=item.split(":")
    # print(kv)
    # 字典增加元素
    # dic[kv[0].strip()]=int(kv[1]) # strip方法也可以不用，int()转换后，自动去掉空格

    # 也可以拆包
    k,v=item.split(":")
    dic[k.strip()]=int(v)

print(dic)

# 6 完成以下需求
# 商品列表：
goods=[
    {'name':'电脑','price':1999},
    {'name':'鼠标','price':10},
    {'name':'游艇','price':20},
    {'name':'Mac','price':9988}
]

# 要求
# 1 页面显示序号+商品名称+商品价格，如 1 电脑 1999
li=[]
i = 1
str(i)
for item in goods:
    # print(item)
    name=item.get('name')
    price=item.get('price')
    print(i," "+name," "+str(price))
    #追加到li
    li.append(name+" "+str(price))
    i=i+1
print(li)

# 实现方式2 使用索引
for index in range(len(goods)):
    print('{}\t{}\t{}'.format((index+1),goods[index]['name'],goods[index]['price']))

# 实现方式3 使用枚举+拆包
for index,dic in enumerate(goods,start=1): # start=1代表index从1开始
    # print(index,dic)
    print('{}\t{}\t{}'.format(index,dic['name'],dic['price']))

# 2 用户输入选择的商品序号，然后打印商品名称以及商品价格
while True:
    index=input("请输入商品序号")
    # 按q或者Q退出
    if index.upper()=='Q':
        break
    # 是否是数字类型
    if index.isdecimal():
        index=int(index)
        # 在索引范围
        if index in range(1, len(li)+1):
            # 使用临时数组
            # print(li[index - 1])
            # 使用原来数组
            print('商品名为：{}，价格为：{}'.format(goods[index-1]['name'],goods[index-1]['price']))
        else:
            print("对不起，不存在你查询的商品")
    else:
        print("输入有误，请重新输入")

# 实现方式2



